package com.sylli.oeuf.server.game.logic.invocation;

import java.io.Serializable;

import com.sylli.oeuf.server.game.logic.BattleActor;
import com.sylli.oeuf.server.game.logic.CastingTarget;
import com.sylli.oeuf.server.game.logic.EventParameter;

public abstract class InvocationCondition implements Serializable {

	public static InvocationCondition ALWAYS_TRUE_IC;
	
	static {
		ALWAYS_TRUE_IC = new InvocationCondition() {

			@Override
			public boolean shouldInvoke(int rank, BattleActor caster, CastingTarget target, EventParameter param) {
				return true;
			}
		};
	}
	
	public abstract boolean shouldInvoke(int rank, BattleActor caster, CastingTarget target, EventParameter param);
	
}
